home *** CD-ROM | disk | FTP | other *** search
-
- ** WRITE WITH 20 PIXEL WIDE FONT
- ** CODE BY CRADON/MATRIX
- ** ASM-ONE FORMAT
-
- SECTION A,CODE_C
-
- START MOVEM.L D0-A6,-(A7)
- MOVE.W $DFF01C,INTENA
- MOVE.W $DFF002,DMACON
- MOVE.W $DFF010,ADKCON
- MOVE.W #%0111111111111111,$DFF096
- MOVE.W #%0111111111111111,$DFF09A
- MOVE.W #%0111111111111111,$DFF09C
- JSR INITCOP
- JSR INITIRQ
- MOVE.W #%1000001111000000,$DFF096
- MOVE.W #%1100000000110000,$DFF09A
-
- lea.l text1,a1
- jsr write20
-
- LOOP BTST #6,$BFE001
- BNE.B LOOP
- ENDE MOVE.W #%0111111111111111,$DFF096
- MOVE.W #%0111111111111111,$DFF09A
- MOVE.W #%0111111111111111,$DFF09C
- MOVE.L OLDIRQ,$00006C
- MOVE.W DMACON,D0
- OR.W #$8000,D0
- MOVE.W D0,$DFF096
- MOVE.W ADKCON,D0
- OR.W #$8000,D0
- MOVE.W D0,$DFF09E
- MOVE.W INTENA,D0
- OR.W #$C000,D0
- MOVE.W D0,$DFF09A
- MOVE.W #0,$DFF088
- MOVEM.L (A7)+,D0-A6
- RTS
-
- ** WRITE TEXT WITH 20 PIXEL WIDE FONT *****************************************
-
- write20 lea.l font,a0
- lea.l screen1,a2
-
- read_position
- moveq #0,d0
- moveq #0,d1
- move.b (a1)+,d0
- move.b (a1)+,d1
- move.w d0,x
- move.w d1,y
-
- calc_destination
- move.w x,d0
- move.w y,d1
- ext.l d0
- ext.l d1
- mulu #20,d0
- divu #16,d0
- swap d0
- move.w d0,d2 ; d2.w = x rest
- swap d0 ; d0.w = x i 16 pixel opløsning
- mulu #2,d0
- ext.l d0
- mulu #24,d1
- mulu #40,d1 ; d1 = y*23*40
- add.w d1,d0
- lea.l (a2,d0.w),a5
-
- read_ascii
- moveq #0,d3
- move.b (a1)+,d3
- tst.b d3 ; end of text?
- beq wrtout
-
- cmp.w #1,d3
- bne noy
- add.w #1,y
- bra read_position
-
- noy cmp.b #32,d3
- beq next
-
- find_font
- sub.w #65,d3
- cmp.b #19,d3
- ble nxt1
- mulu #4,d3
- lea.l (a0,d3.w),a4
- add.w #44*40,a4
- bra minterm
- nxt1 cmp.b #9,d3
- ble nxt2
- mulu #4,d3
- lea.l (a0,d3.w),a4
- add.w #22*40,a4
- bra minterm
- nxt2 mulu #4,d3
- lea.l (a0,d3.w),a4
-
- minterm
- move.w #%0000110111111100,d4 ; minterm d= a + b
- ror.w #4,d2
- or.w d2,d4 ; source 'a' shift value
- jsr blit
- next add.w #1,x
- bra calc_destination
- wrtout rts
-
- text1 dc.b 0,0,'MATRIX PRODUCTS',1
- dc.b 0,1,'MATRIX PRODUCTS',1
- dc.b 0,2,'MATRIX PRODUCTS',1
- dc.b 0,3,'MATRIX PRODUCTS',1
- dc.b 0,4,'MATRIX PRODUCTS',1
- dc.b 0,5,'MATRIX PRODUCTS',1
- dc.b 0,6,'MATRIX PRODUCTS',1
- dc.b 0,7,'MATRIX PRODUCTS',1
- dc.b 0,8,'MATRIX PRODUCTS',1
- dc.b 0,9,'MATRIX PRODUCTS',0
- even
- x dc.w 0
- y dc.w 0
-
- BLIT BTST #6,$DFF002
- BNE.B BLIT
- MOVE.W D4,$DFF040 ; BLTCON0
- MOVE.W #0,$DFF042 ; BLTCON1
- MOVE.W #$FFFFFFFF,$DFF044 ; MASK
- MOVE.L a4,$DFF050 ; A POINTER
- MOVE.L A5,$DFF04C ; B POINTER
- MOVE.L A5,$DFF054 ; D POINTER
- MOVE.W #36,$DFF062 ; B MODULO
- MOVE.W #36,$DFF064 ; A MODULO [320-32]/8
- MOVE.W #36,$DFF066 ; D MODULO
- MOVE.W #[23*64+32/16],$DFF058 ; SIZE
- ADD.L #10240,A5
- ADD.L #3*23*40,a4
- READY2 BTST #6,$DFF002
- BNE.B READY2
- MOVE.W D4,$DFF040 ; BLTCON0
- MOVE.W #0,$DFF042 ; BLTCON1
- MOVE.W #$FFFFFFFF,$DFF044 ; MASK
- MOVE.L a4,$DFF050 ; A POINTER
- MOVE.L A5,$DFF04C ; B POINTER
- MOVE.L A5,$DFF054 ; D POINTER
- MOVE.W #36,$DFF062 ; B MODULO
- MOVE.W #36,$DFF064 ; A MODULO [320-32]/8
- MOVE.W #36,$DFF066 ; D MODULO
- MOVE.W #[23*64+32/16],$DFF058 ; SIZE
- RTS
-
- ** THIRD LEVEL INTERRUPT ******************************************************
-
- MYIRQ MOVEM.L D0-A6,-(A7)
-
- MOVE.W #$20,$DFF09C
- MOVEM.L (A7)+,D0-A6
- RTE
-
- OLDIRQ DC.L 0
- INTENA DC.W 0
- DMACON DC.W 0
- ADKCON DC.W 0
-
- ** SET COPPER FOR SELFACTIVATION **********************************************
-
- INITCOP LEA PLANE1,A0
- MOVE.L #SCREEN1,D0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- SWAP D0
- LEA PLANE2,A0
- MOVE.L #SCREEN1+10240,D0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- SWAP D0
- MOVE.L #COPPER,D0
- LEA.L ADRESS,A0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- MOVE.L #COPPER,$DFF084
- MOVE.B #$00,$DFF08A
- RTS
- INITIRQ MOVE.L $6C,OLDIRQ
- MOVE.L #MYIRQ,$6C
- RTS
-
- ** COPPERLIST *****************************************************************
-
- SECTION B,DATA_C
-
- COPPER DC.W $0106,$0000,$01FC,$0000
- DC.W $008E,$2C81,$0090,$2CC1
- DC.W $0092,$0038,$0094,$00D0
- DC.W $0102,$0000,$0104,$0000
- DC.W $0108,$0000,$010A,$0000
-
- COLOUR DC.W $0180,$0FFF,$0182,$0000
- DC.W $0184,$0686,$0186,$00B0
- DC.W $0188,$080f,$018A,$0000
- DC.W $018C,$0fF0,$018E,$0813
-
- PLANE1 DC.W $00E0,$0000,$00E2,$0000
- PLANE2 DC.W $00E4,$0000,$00E6,$0000
- DC.W $00E8,$0000,$00EA,$0000
- DC.W $3001,$FF00,$0100,$2200
- DC.W $FFE1,$FFFE,$2901,$FF00
- DC.W $0100,$0200
-
- ADRESS DC.W $0084,$0000,$0086,$0000
- DC.W $008A,$0000,$FFFF,$FFFE ; FORCE RESTART
-
- ** SCREEN *********************************************************************
-
- FONT INCBIN "DH0:CODING/SOURCE/SCROLLER/GREENFONT2.BIT"
- SCREEN1 BLK.B [320/8*512],$00
-